1 Introducción, objetivos y preguntas.

La Ciudad de Buenos Aires es la ciudad capital de la Republica Argentina, es una ciudad autónoma con independencia politica del Gobierno Federal. Es el territorio económicamente mas rico del país, pero con tasas de desigualdad económica y social crecientes.

En la ciudad hay barrios populares con características particulares que pueden asimilarse a las conocida favelas y territorios favelizados presentes en otras ciudades de Latinoamérica. Dichos barrios tienen ciertas particularidades sociohistoricas que configuran condiciones de gran pobreza y hacinamiento con un limitado acceso a servicios públicos y de recreación. Al mismo tiempo, en dichos barrios hay presencia de organizaciones sociales de diversos origines y con diversos propósitos como educación, alimentación o recreación.

Me propongo entonces analizar la distribución geográfica de las organizaciones sociales en la Ciudad de Buenos Aires y su relación con la localización de los barrios populares en la ciudad. Así mismo me propongo mapear los parques como una forma de comenzar a ver el acceso a servicios ecológicos como zonas verdes de esparcimiento y de recreación.

2 Librerías

Utilizaré las siguentes librerías

library(tidyverse)
library(sf)
library(ggmap)
library(leaflet)
library(osrm)
library(osmdata)
library("RColorBrewer")

3 Carga de datos y filtrado

Los datos georeferenciados de las organizationes sociales fueron descargados del portal de datos del Gobierno de la Ciudad de Buenos Aires. Los mismo se encuentran actualizados al 12 de Diciembre de 2019.

El resto de los datos serán descargados vía Open Street map (OSM) y del portal de datos a nivel nacional datos.gob.ar

3.1 Carga de organizaciones sociales

org.soc <- read.csv("organizaciones-sociales.csv")

3.1.1 Análisis exploratorio

Miro el comienzo del archivo.

head(org.soc)

Exploro que categorías hay disponibles.

names(org.soc)
##  [1] "long"                       "lat"                       
##  [3] "id"                         "nombre_ofi"                
##  [5] "telefono"                   "email"                     
##  [7] "web"                        "horario_de"                
##  [9] "calle_nombre"               "calle_altura"              
## [11] "calle_cruce"                "sector"                    
## [13] "manzana"                    "piso"                      
## [15] "casa"                       "lado"                      
## [17] "pasillo"                    "observacio"                
## [19] "barrio"                     "comuna"                    
## [21] "codigo_postal"              "codigo_postal_argentino"   
## [23] "tipo_de_or"                 "actividad"                 
## [25] "nom_mapa"                   "funcion_de_la_organizacion"
## [27] "actividades"

Ahora exploro que tipo de actividades están mapeadas.

unique(org.soc$actividad)
##  [1] ""                                                                           
##  [2] "PORTAL INCLUSIVO"                                                           
##  [3] "COMEDOR"                                                                    
##  [4] "CANCHA"                                                                     
##  [5] "ESTABLECIMIENTO EDUCATIVO"                                                  
##  [6] "ASOCIACION CIVIL"                                                           
##  [7] "CENTRO DE ACCESO A LA JUSTICIA"                                             
##  [8] "PUNTO VERDE"                                                                
##  [9] "CENTRO DE PRIMERA INFANCIA"                                                 
## [10] "JUEGOTECA"                                                                  
## [11] "CENTRO DE SALUD"                                                            
## [12] "CENTRO CULTURAL"                                                            
## [13] "CINE"                                                                       
## [14] "NUCLEO DE INCLUSIÓN Y DESARROLLO DE OPORTUNIDADES"                          
## [15] "CENTRO COMUNITARIO"                                                         
## [16] "CENTRO DE SALUD Y ACCION COMUNITARIA"                                       
## [17] "MINISTERIO PUBLICO TUTELAR"                                                 
## [18] "IGLESIA / TEMPLO"                                                           
## [19] "HOGAR"                                                                      
## [20] "CENTRO DE DIA"                                                              
## [21] "FARMACIA"                                                                   
## [22] "CLUB"                                                                       
## [23] "ASOCIACION SOCIAL"                                                          
## [24] "CENTRO INTEGRAL DE LA MUJER"                                                
## [25] "COMISARIA"                                                                  
## [26] "MINISTERIO PUBLICO FISCAL"                                                  
## [27] "COOPERATIVA"                                                                
## [28] "POLIDEPORTIVO"                                                              
## [29] "AYSA"                                                                       
## [30] "SERVICIO SOCIAL ZONAL"                                                      
## [31] "PROGRAMAS DE ASISTENCIA Y EDUCACIÓN"                                        
## [32] "CENTRO DE ACCION FAMILIAR"                                                  
## [33] "MINISTERIO / SUBSECRETARIA"                                                 
## [34] "UNIDAD DE GESTION DE INTERVENCION SOCIAL"                                   
## [35] "CUARTEL DE BOMBEROS"                                                        
## [36] "BIBLIOTECA"                                                                 
## [37] "CENTRO DE JUBILADOS"                                                        
## [38] "GUARDIA DE ELECTRICIDAD"                                                    
## [39] "SEDE COMUNAL"                                                               
## [40] "ESTABLECIMIENTO EDUCATIVO NO FORMAL"                                        
## [41] "MERENDERO"                                                                  
## [42] "GUARDERIA"                                                                  
## [43] "RADIO"                                                                      
## [44] "ACTIVIDADES DEPORTIVAS"                                                     
## [45] "CENTRO DE DESARROLLO INFANTIL"                                              
## [46] "CASA DE NIÑOS, NIÑAS Y ADOLESCENTES"                                        
## [47] "HOSPITAL"                                                                   
## [48] "DEFENSORIA DE NIÑOS"                                                        
## [49] "CENTRO DE ACTIVIDADES INFANTILES"                                           
## [50] "CENTRO EDUCATIVO PARA NIÑOS CON TRANSTORNOS EMOCIONALES SEVEROS"            
## [51] "FORTALECIMIENTO DE VINCULOS"                                                
## [52] "ASOCIACION VECINAL"                                                         
## [53] "PROGRAMA DE PREVENCION, ASISTENCIA Y REINSERCION SOCIAL EN DROGODEPENDENCIA"
## [54] "CONSULADO"                                                                  
## [55] "BOMBEROS"                                                                   
## [56] "CENTRO DE CAPACITACION DE ADOLESCENTES"                                     
## [57] "DEFENSORIA DEL PUEBLO"                                                      
## [58] "CENTRO MEDICO BARRIAL"                                                      
## [59] "ORQUESTA"                                                                   
## [60] "HOGAR DE DIA"                                                               
## [61] "SAME"                                                                       
## [62] "CENTRO PARROQUIAL"                                                          
## [63] "CENTRO DE FORMACION PROFESIONAL"                                            
## [64] "MUTUAL"                                                                     
## [65] "CENTRO METROPOLITADO DE DISEÑO"                                             
## [66] "DIRECCION GENERAL DE LA MUJER"                                              
## [67] "CENTRO MATERNO INFANTIL"                                                    
## [68] "COPIDIS"                                                                    
## [69] "CENTRO DE INTERVENCION ASISTENCIAL COMUNITARIA"                             
## [70] "OPTICA"                                                                     
## [71] "EDESUR"                                                                     
## [72] "ACUMAR"                                                                     
## [73] "OCESA"                                                                      
## [74] "URBASUR"

3.1.2 Filtrado

Selecciono las columnas deseadas: nombre y ID de la organización, su localización y datos de que función cumplen.

org.soc.filt <- org.soc[,c(1:4,19,20,23:25)]

Luego elimino cualquier dato que este incompleto. En particular este data frame tiene datos faltantes que están guardados como "", lo que hago entonces es convertirlos en NAs y eso luego lo filtro con la función complte.cases

#cambio a NA los "missing cases"
org.soc.filt[org.soc.filt==""]<-NA
head(org.soc.filt)

Veo ahora como se ve el data frame, sus dimensiones antes y después de filtrar.

dim(org.soc.filt)
## [1] 721   9
dim(org.soc.filt[complete.cases(org.soc.filt),])
## [1] 601   9

Filtrado.

org.soc.filt<-org.soc.filt[complete.cases(org.soc.filt),]

4 Mapeo

4.1 Datos observados sin mapa

Primero tenemos los datos sin mapeo y ya observamos una distribución no homogénea. Esto puede deberse a razones de muestreo o de necesidad social.

ggplot()+
  geom_point(data=org.soc.filt, aes(x=long, y=lat, color=tipo_de_or), size=1,alpha=0.5, inherit.aes = FALSE, alpha=0.5) + scale_color_manual(values=c("blue", "darkorange", "red2"))+
  labs(title="Organizaciones sociales",
       subtitle="Ciudad de buenos aires",
       caption="Fuente: https://data.buenosaires.gob.ar/dataset/?groups=desarrollo-humano",colour = "Tipo de organización")
## Warning: Duplicated aesthetics after name standardisation: alpha

4.2 Descarga del Mapa y mapeo

En particular nos interesa ver donde se encuentran localizadas estas organizaciones dentro de la ciudad de buenos aires. Dada la distribución de los datos usarlos para extraer la caja de coordenadas no parece adecuado. Elijo entonces, descargar el mapa mediante Open Street Map (OSM).

bbox_ba <- getbb("Capital Federal, Buenos Aires, Argentina")

Generamos el mapa y el poligono de limites de la ciudad.

mapa_ba <- get_stamenmap(bbox_ba,  zoom = 12)

polygon_ba <- getbb("Capital Federal, Buenos Aires, Argentina", format_out = "sf_polygon")
polygon_ba <- polygon_ba$multipolygon

ggmap(mapa_ba)+
  geom_sf(data=polygon_ba, fill=NA, size=0.5, color="black", inherit.aes = FALSE)

Ahora agregamos las organizaciones sociales al mapa. Vemos, como dijimos anteriormente, que las organizaciones sociales no se encuentran distribuidas homogéneamente.

ggmap(mapa_ba) +
  geom_point(data=org.soc.filt, aes(x=long, y=lat, color=tipo_de_or), size=1,alpha=0.5, inherit.aes = FALSE, alpha=0.5) + scale_color_manual(values=c("blue", "darkorange", "red2")) +
  labs(title="Organizaciones sociales",
       subtitle="Ciudad de buenos aires",
       caption="Fuente: https://data.buenosaires.gob.ar/dataset/?groups=desarrollo-humano",
       colour = "Tipo de organización")+
  theme_void()+
  geom_sf(data=polygon_ba, fill=NA, size=0.5, color="black", inherit.aes = FALSE)
## Warning: Duplicated aesthetics after name standardisation: alpha
## Coordinate system already present. Adding new coordinate system, which will replace the existing one.

4.3 Inclusión de calles

Podemos ver que mientras que las organizaciones de Gestion Estatal se encuentran más dispersos y en zonas de avenidas, las organizaciones sociales se encuentran concentradas y en espacos con calles más pequeñas.

calles_ba <- opq(bbox_ba) %>% add_osm_feature(key = "highway")
#transformo en mapa
calles_ba <- osmdata_sf(calles_ba)
#extraemos las lineas
calles_ba <- calles_ba$osm_lines
#filtro adentro de la ciudad
calles_ba<- st_intersection(calles_ba, polygon_ba)
## Warning: attribute variables are assumed to be spatially constant throughout all
## geometries
#Voy a mapear solo avenidad
ggmap(mapa_ba)+
    geom_sf(data = calles_ba %>% filter(., str_detect(name, "Avenida")), color="darkred", alpha=0.25, inherit.aes = FALSE)+
  geom_point(data=org.soc.filt, aes(x=long, y=lat, color=tipo_de_or), size=1,alpha=0.5, inherit.aes = FALSE, alpha=0.5) + scale_color_manual(values=c("blue", "darkorange", "red2")) +
  labs(title="Organizaciones sociales",
       subtitle="Ciudad de buenos aires",
       caption="Fuente: https://data.buenosaires.gob.ar/dataset/?groups=desarrollo-humano",
       colour = "Tipo de organización")+
  geom_sf(data=polygon_ba, fill=NA, size=0.5, color="black", inherit.aes = FALSE)+
  theme_void()
## Coordinate system already present. Adding new coordinate system, which will replace the existing one.
## Warning: Duplicated aesthetics after name standardisation: alpha

4.4 Inclusión de espacios verdes

Vemos a simple vista que los parques tampoco se encuentran distribuidos homogéneamente, con una mayor densidad en la zona norte.

parques_ba <- opq(bbox_ba) %>%
                    add_osm_feature(key = "leisure", value = "park")
#transformo en mapa
parques_ba <- osmdata_sf(parques_ba)

#extraemos los poligonos
parques_ba  <- parques_ba$osm_polygons

#filtro adentro de la ciudad
#parques_ba <- st_intersection(parques_ba, polygon_ba)
#parques_ba <- parques_ba[!is.na(parques_ba$addr.city),]

#Voy a mapear solo avenidas y parques
ggmap(mapa_ba)+
  geom_sf(data = parques_ba , fill="darkgreen", alpha=0.5, inherit.aes = FALSE,color=NA)+
  geom_point(data=org.soc.filt, aes(x=long, y=lat, color=tipo_de_or), size=1,alpha=0.5, inherit.aes = FALSE, alpha=0.5) + scale_color_manual(values=c("blue", "darkorange", "red2")) +
  labs(title="Organizaciones sociales",
       subtitle="Ciudad de buenos aires",
       caption="Fuente: https://data.buenosaires.gob.ar/dataset/?groups=desarrollo-humano",
       colour = "Tipo de organización")+
  geom_sf(data=polygon_ba, fill=NA, size=0.5, color="black", inherit.aes = FALSE)+
  theme_void()
## Coordinate system already present. Adding new coordinate system, which will replace the existing one.
## Warning: Duplicated aesthetics after name standardisation: alpha

5 Análisis incluyendo Barrios populares

Por un tema de claridad decido usar otro mapa de fondo en vez del de OSM. Voy a agregar los barrios populares y filtrar solo los de la ciudad de buenos aires. Se ve claramente que las organizaciones sociales están ADENTRO de los barrios.

barrios_pop <- st_read("https://datosabiertos.desarrollosocial.gob.ar/dataset/0d022767-9390-486a-bff4-ba53b85d730e/resource/97cc7d10-ad4c-46cb-9ee4-becb402adf9f/download/renabap-2020-11-20.geojson")
## Reading layer `renabap-2020-11-20' from data source 
##   `https://datosabiertos.desarrollosocial.gob.ar/dataset/0d022767-9390-486a-bff4-ba53b85d730e/resource/97cc7d10-ad4c-46cb-9ee4-becb402adf9f/download/renabap-2020-11-20.geojson' 
##   using driver `GeoJSON'
## Simple feature collection with 4416 features and 10 fields
## Geometry type: MULTIPOLYGON
## Dimension:     XY
## Bounding box:  xmin: -71.56234 ymin: -54.82011 xmax: -53.64036 ymax: -22.04006
## Geodetic CRS:  WGS 84
barrios_pop <- barrios_pop %>% filter(Provincia=="Ciudad de Buenos Aires")

#mapa de los barrios de la ciudad
barrios <- read_sf("https://cdn.buenosaires.gob.ar/datosabiertos/datasets/barrios/barrios.geojson")

#Filtrado de parques dentro de la ciudad
parques_ba_b<-st_intersection(parques_ba,barrios)
## Warning: attribute variables are assumed to be spatially constant throughout all
## geometries
#Mergeo las organizaciones sociales con los barrios populares
org.soc.filt_sf<-st_as_sf(org.soc.filt,coords = c("long","lat"),crs = 4326)
# find points within polygons
org_IN_barrio_pop <- st_join(org.soc.filt_sf,barrios_pop,join = st_within)
#Las organizaciones que esten dentro de un barrio popular tendrán etiqueta de "Barrio"
#cantida de NAs
org_IN_barrio_pop$Barrio%>%is.na()%>%table()
## .
## FALSE  TRUE 
##   232   369
#separación por barrio
org_IN_barrio_pop$Barrio%>%table()
## .
##   Barrio Fátima     Barrio Inta        Cildáñez   Los Piletones NHT del Trabajo 
##              13               7               6               6               4 
##   Ramón Carillo   Villa 1-11-14        Villa 15        Villa 20     Villa 21-24 
##              17              18              17              32              67 
##        Villa 31    Villa 31 Bis        Zavaleta 
##              32              10               3

Ahora mapeamos las organizaciones sociales que estan fuera y dentro de los barrio y las separamos por tipo.

Barrios populares coloreados en rosa y parques en verde. Vemos que los barrios populares están mayoritariamente en la zona sur de la ciudad mientras que los parques están mayoritariamente en la zona norte.

ggplot()+geom_sf(data = barrios)+
  geom_sf(data = parques_ba_b , fill="darkgreen", alpha=0.5, inherit.aes = FALSE,color=NA)+
  geom_sf(data=barrios_pop, fill="violetred",alpha=0.7,color=NA)+labs(title="Organizaciones sociales y Barrios Populares",
       subtitle="Barrios Populares dentro de la Ciudad de buenos aires en violeta \n Parques en verde",
       caption="Fuentes: https://data.buenosaires.gob.ar/dataset/?groups=desarrollo-humano \n https://cdn.buenosaires.gob.ar/datosabiertos/datasets/barrios/barrios.geojson")

Cuando sumamos las organizaciones sociales nuevamente vemos que las distribución separada por tipo de gestion (estatal, no estatal o mixta) tampoco es homogénea. A primera vista parece que las organizaciones sociales de gestion estatal estan por fuera de los barrios populares mienras que las organizaciones sociales de gestion no estatal estan dentro de los barrios.

ggplot()+geom_sf(data = barrios)+
  geom_sf(data=barrios_pop, fill="violetred",alpha=0.7,color=NA)+
  geom_sf(data = parques_ba_b , fill="darkgreen", alpha=0.5, inherit.aes = FALSE,color=NA)+
  geom_sf(data=org_IN_barrio_pop[,], size=0.5,alpha=0.5, inherit.aes = FALSE, alpha=0.5, aes(color=tipo_de_or)) + scale_color_manual(values=c("blue", "darkorange", "red2"))+
  labs(title="Organizaciones sociales",
       subtitle="Ciudad de buenos aires",
       caption="Fuentes: https://data.buenosaires.gob.ar/dataset/?groups=desarrollo-humano \n https://cdn.buenosaires.gob.ar/datosabiertos/datasets/barrios/barrios.geojson")
## Warning: Duplicated aesthetics after name standardisation: alpha

Para corroborar esto grafiacmos solamente las organizaciones sociales dentro de los barrios y calculamos el total por tipo de gestión.

ggplot()+geom_sf(data = barrios)+
  geom_sf(data=barrios_pop, fill="violetred",alpha=0.7,color=NA)+
  geom_sf(data = parques_ba_b , fill="darkgreen", alpha=0.5, inherit.aes = FALSE,color=NA)+
  geom_sf(data=org_IN_barrio_pop[!is.na(org_IN_barrio_pop$Barrio),], size=0.5,alpha=0.5, inherit.aes = FALSE, alpha=0.5, aes(color=tipo_de_or)) + scale_color_manual(values=c("blue", "darkorange", "red2"))+
  labs(title="Organizaciones sociales Dentro de Barrios Populares ",
       subtitle="Ciudad de buenos aires",
       caption="Fuentes: https://data.buenosaires.gob.ar/dataset/?groups=desarrollo-humano \n https://cdn.buenosaires.gob.ar/datosabiertos/datasets/barrios/barrios.geojson")
## Warning: Duplicated aesthetics after name standardisation: alpha

Para ver la distribución vemos total por tipo de gestión

org_IN_barrio_pop[!is.na(org_IN_barrio_pop$Barrio),] %>% group_by(Barrio,tipo_de_or)%>%summarise(total_org=n()) %>% ggplot(.,aes(y= total_org ,fill=tipo_de_or,x=Barrio))+geom_bar(stat="identity",position=position_dodge())+
  theme_minimal()+ scale_fill_manual(values=c("blue", "darkorange", "red2"))+ theme(axis.text.x = element_text(angle = 45,  hjust=1))+
  labs(title="Organizaciones sociales Dentro de Barrios Populares",
       subtitle="Color por tipo de gestión",
       caption="Fuentes: https://data.buenosaires.gob.ar/dataset/?groups=desarrollo-humano \n https://cdn.buenosaires.gob.ar/datosabiertos/datasets/barrios/barrios.geojson")

org_IN_barrio_pop[!is.na(org_IN_barrio_pop$Barrio),] %>% group_by(Barrio,tipo_de_or)%>%summarise(total_org=n()) %>% ggplot(.,aes(y= total_org ,fill=tipo_de_or,x=Barrio))+ 
    geom_bar(position="fill", stat="identity")+
  theme_minimal()+ scale_fill_manual(values=c("blue", "darkorange", "red2"))+ theme(axis.text.x = element_text(angle = 45,  hjust=1))+
  labs(title="Organizaciones sociales Dentro de Barrios Populares",
       subtitle="Color por tipo de gestión",
       caption="Fuentes: https://data.buenosaires.gob.ar/dataset/?groups=desarrollo-humano \n https://cdn.buenosaires.gob.ar/datosabiertos/datasets/barrios/barrios.geojson")

6 Mapa interactivo de organizaciones sociales

Me pareció interesante crear un mapa interactivo con la información de las organizaciones sociales mapeadas. Tenemos que convertir el data frame de organizaciones sociales en un data set geográfico. Hacemos eso con la función st_as_sf

#Primero convierto
org.soc.filt_map<-st_as_sf(org.soc.filt,coords = c("long", "lat"))

#luego mapeo y agrego pop-ups con la información
leaflet(org.soc.filt_map) %>%
  addTiles() %>%
  addMarkers(popup =paste("Nombre: ",org.soc.filt_map$nom_mapa,"Actividad: ", org.soc.filt_map$actividad, "<br>", "Tipo: ", org.soc.filt_map$tipo_de_or) )

7 Conclusiones finales

En este análisis vimos que la distribución de los espacios verdes en la Ciudad de Buenos Aires se encuentra distribuida heterogéneamente en el espacio. Vemos una mayor presencia de parques de mayor tamaño en la zona norte de la ciudad. Así mismo vemos que la distribución de los barrios populares ed la ciuduad tampoco es homogénea, con una mayor presencia en la zona sur de la ciudad. Esto nos lleva a repensar las condiciones de acceso a servicios ecológicos y de esparcimiento de las poblaciones que habitan estos barrios.

Así mismo en este trabajo nos propusimos estudiar la distribución espacial de las organizaciones sociales en la Ciudad de Buenos Aires. Encontramos una correlación de la presencia de estas organizaciones con la presencia de barrios populares. Por diversas razones esto parece una conclusión un tanto obvia. Es interesante sin embargo ver la densidad de organizaciones sociales no gubernamentales dentro de los barrios populares en comparación con la presencia de organizaciones gubernamentales. Vemos que dentro de los barrios las organizaciones de gestión no estatal es mucho mayor que la estatal llegando a un 100% en barrio Los Piletones y Villa 31 bis.